package PrzestrzenDyskretna;

import Narzedzia.ListaElementow;
import Zbiory.Element;

public class IloczynDyskretnyZbiorRozmyty extends DyskretnyZbiorRozmyty {

	public IloczynDyskretnyZbiorRozmyty(DyskretnyZbiorRozmyty zbior1, DyskretnyZbiorRozmyty zbior2) {
		super(nowaPrzestrzen(nowaListaZbiorow(zbior1, zbior2)), noweElementy(zbior1, zbior2));
	}

	private static ListaElementow<Element> noweElementy(DyskretnyZbiorRozmyty zbior1, DyskretnyZbiorRozmyty zbior2) {
		ListaElementow<Element> elementy = new ListaElementow<Element>();
		for(Element element1 : zbior1.getElementy()){
			if(zbior2.getElementy().contains(element1)){
				for(Element element2 : zbior2.getElementy()){
					if(element2.compareTo(element1) == 0){
						if(element2.getPrzynaleznosc() < element1.getPrzynaleznosc()){
							elementy.add(new Element(element2));
						}
						else{
							elementy.add(new Element(element1));
						}
						break;
					}
				}
			}
		}
		return elementy;
	}
	
}
